From 2ab29cc06cd44c9da2ea000053d9c7c412d5ece5 Mon Sep 17 00:00:00 2001 From: Paul Donald Date: Sat, 30 Nov 2024 16:26:27 +0100 Subject: [PATCH] ddns-scripts: refactor stop_section_processes() Now a single xargs calls instead of grepping ps output (unreliable). Signed-off-by: Paul Donald --- .../files/usr/lib/ddns/dynamic_dns_functions.sh | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/net/ddns-scripts/files/usr/lib/ddns/dynamic_dns_functions.sh b/net/ddns-scripts/files/usr/lib/ddns/dynamic_dns_functions.sh index 5e157f3013..ba1572ec67 100644 --- a/net/ddns-scripts/files/usr/lib/ddns/dynamic_dns_functions.sh +++ b/net/ddns-scripts/files/usr/lib/ddns/dynamic_dns_functions.sh @@ -204,15 +204,14 @@ start_daemon_for_all_ddns_sections() # stop sections process incl. childs (sleeps) # $1 = section stop_section_processes() { - local __PID=0 - local __PIDFILE="$ddns_rundir/$1.pid" - [ $# -ne 1 ] && write_log 12 "Error calling 'stop_section_processes()' - wrong number of parameters" + local pid_file + pid_file="$ddns_rundir/$1.pid" + [ $# -ne 1 ] && write_log 12 "Error: 'stop_section_processes()' requires exactly one parameter" - [ -e "$__PIDFILE" ] && { - __PID=$(cat $__PIDFILE) - busybox ps | grep "^[\t ]*$__PID" >/dev/null 2>&1 && kill $__PID || __PID=0 # terminate it + [ -e "$pid_file" ] && { + xargs kill < "$pid_file" 2>/dev/null && return 1 } - [ $__PID -eq 0 ] # report if process was running + return 0 # nothing killed } # stop updater script for all defines sections or only for one given -- 2.30.2